'''
http://www.cnblogs.com/denny402/tag/python/default.html?page=2
'''
import tkinter
from tkinter import *
from PIL import Image
import matplotlib.pyplot as plt

#定义窗体
win = Tk() 
win.title("简易图像处理器")

#定义标题
lab = Label(win, text='简易图像处理器', font=('Times','20','bold'))
lab.grid(row=0, column=0, columnspan=5) 

#定义空白标签
labss = Label(win,text="",width = 50,height = 1)
labss.grid(row=3, column=0, columnspan=5)

# 定义显示图像信息的文本框
s = StringVar()
txt = Entry(win,width=50,font=('宋体','10'),textvariable=s)
txt.grid(row=4, column=0, columnspan=5)

# 定义图像对象
img=Image.open('dukou.gif')
plt.figure("图像处理")

#显示原像函数 
def com_show():
	plt.subplot(2,2,1), plt.title('origin') #区域分成1行2列，第1
	plt.imshow(img)
	plt.axis('off')
	plt.show()

#查看图像信息函数
def com_info():
	plt.imshow(img)
	s.set('图片的尺寸:'+str(img.size)+'图片的格式:'+str(img.format))

#转换灰度函数
def com_gray():
	plt.subplot(2,2,2), plt.title('gray') #区域分成1行2列，第2	
	gray=img.convert('L')  #转换成灰度
	plt.imshow(gray,cmap='gray')
	plt.axis('off')
	plt.show()

# 裁剪图片函数
def com_roi():
	box=(80,100,260,300)
	roi=img.crop(box)
	plt.subplot(2,2,3), plt.title('crop') #区域分成1行2列，第3
	plt.imshow(roi),plt.axis('off')
	plt.show()

# 图片左右翻转函数
def com_trans():
	plt.subplot(2,2,4), plt.title('trans') #区域分成1行2列，第4
	dst=img.transpose(Image.FLIP_LEFT_RIGHT)  #左右翻转
	#img.rotate(45)   # 顺时针旋转45度
	plt.imshow(dst) 
	plt.axis('off')
	plt.show()

 

#定义按钮 
btn_show = Button(win, text='显示图像', command=com_show) 
btn_show.grid(row=2, column=0)

btn_show = Button(win, text='查看图像信息', command=com_info) 
btn_show.grid(row=2, column=1)

btn_show = Button(win, text='彩色转灰度', command=com_gray) 
btn_show.grid(row=2, column=2)

btn_show = Button(win, text='裁剪图片', command=com_roi) 
btn_show.grid(row=2, column=3)

btn_show = Button(win, text='图片水平翻转', command=com_trans) 
btn_show.grid(row=2, column=4)

win.mainloop() 
